﻿using System;
using Microsoft.Extensions.Logging;

namespace Communication.DataReceivedEvent;

public interface IDataReceivedEvent : IDisposable, IFormattable
{
    /// <summary>
    ///     日志接口
    /// </summary>
    ILogger Logger { get; }

    /// <summary>
    ///     获取一个值，该值指示  对象的打开或关闭状态。
    /// </summary>
    bool Connected { get; }

    void Close();

    /// <summary>
    ///     启动事件
    /// </summary>
    /// <param name="action">接收到数据后的回调函数  超时没有收到数据参数 为null</param>
    /// <returns></returns>
    bool Start(Action<byte[]?> action);
}